#!/bin/sh
cd ${0%/*} || exit 1    # Run from this directory

# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions

setControlDict()
{
    sed \
    -e "s/\(deltaT[ \t]*\) 5e-06;/\1 1e-05;/g" \
    -e "s/\(endTime[ \t]*\) 0.005;/\1 0.015;/g" \
    -e "s/\(writeInterval[ \t]*\) 10;/\1 50;/g" \
    -i system/controlDict
}

setCombustionProperties()
{
    sed \
    -e "s/\(laminarFlameSpeedCorrelation[ \t]*\) Gulders;/\1 RaviPetersen;/g" \
    -e "s/\(fuel[ \t]*\) Propane;/\1 HydrogenInAir;/g" \
    -i constant/combustionProperties
}

# Do moriyoshiHomogeneous
( cd moriyoshiHomogeneous && foamRunTutorials )

# Clone case for second phase
cloneCase moriyoshiHomogeneous moriyoshiHomogeneousPart2

# Modify and execute
(
    cd moriyoshiHomogeneousPart2 || exit

    # The following 2 command lines are a generic implementation of the
    # following command:
    #     cp -r ../moriyoshiHomogeneous/0.005 .

    lastTimeStep=$(foamListTimes -case ../moriyoshiHomogeneous -latestTime)
    cp -r ../moriyoshiHomogeneous/$lastTimeStep .

    setControlDict
    runApplication $(getApplication)
)

# Clone case for hydrogen
cloneCase moriyoshiHomogeneous moriyoshiHomogeneousHydrogen

# Modify and execute
(
    cd moriyoshiHomogeneousHydrogen || exit

    setCombustionProperties
    mv constant/thermophysicalProperties \
       constant/thermophysicalProperties.propane
    mv constant/thermophysicalProperties.hydrogen \
       constant/thermophysicalProperties
    runApplication $(getApplication)
)

#------------------------------------------------------------------------------
